{
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "ZrwVQsM9TiUw"
      },
      "source": [
        "##### Copyright 2019 The TensorFlow Authors.\n",
        "\n",
        "Licensed under the Apache License, Version 2.0 (the \"License\");"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "CpDUTVKYTowI"
      },
      "outputs": [],
      "source": [
        "#@title Licensed under the Apache License, Version 2.0 (the \"License\"); { display-mode: \"form\" }\n",
        "# you may not use this file except in compliance with the License.\n",
        "# You may obtain a copy of the License at\n",
        "#\n",
        "# https://www.apache.org/licenses/LICENSE-2.0\n",
        "#\n",
        "# Unless required by applicable law or agreed to in writing, software\n",
        "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
        "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
        "# See the License for the specific language governing permissions and\n",
        "# limitations under the License."
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "ltPJCG6pAUoc"
      },
      "source": [
        "# TFP Probabilistic Layers: Regression\n",
        "\n",
        "\u003ctable class=\"tfo-notebook-buttons\" align=\"left\"\u003e\n",
        "  \u003ctd\u003e\n",
        "    \u003ca target=\"_blank\" href=\"https://colab.research.google.com/github/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/Probabilistic_Layers_Regression.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/colab_logo_32px.png\" /\u003eRun in Google Colab\u003c/a\u003e\n",
        "  \u003c/td\u003e\n",
        "  \u003ctd\u003e\n",
        "    \u003ca target=\"_blank\" href=\"https://github.com/tensorflow/probability/blob/master/tensorflow_probability/examples/jupyter_notebooks/Probabilistic_Layers_Regression.ipynb\"\u003e\u003cimg src=\"https://www.tensorflow.org/images/GitHub-Mark-32px.png\" /\u003eView source on GitHub\u003c/a\u003e\n",
        "  \u003c/td\u003e\n",
        "\u003c/table\u003e"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "WRVR-tGTR31S"
      },
      "source": [
        "In this example we show how to fit regression models using TFP's \"probabilistic layers.\""
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "uiR4-VOt9NFX"
      },
      "source": [
        "### Dependencies \u0026 Prerequisites\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "gcJrUr0pF6qM"
      },
      "outputs": [],
      "source": [
        "#@title Install { display-mode: \"form\" }\n",
        "TF_Installation = 'TF2 Nightly (GPU)' #@param ['TF2 Nightly (GPU)', 'TF2 Stable (GPU)', 'TF1 Nightly (GPU)', 'TF1 Stable (GPU)','System']\n",
        "\n",
        "if TF_Installation == 'TF2 Nightly (GPU)':\n",
        "  !pip install -q --upgrade tf-nightly-gpu-2.0-preview\n",
        "  print('Installation of `tf-nightly-gpu-2.0-preview` complete.')\n",
        "elif TF_Installation == 'TF2 Stable (GPU)':\n",
        "  !pip install -q --upgrade tensorflow-gpu==2.0.0-alpha0\n",
        "  print('Installation of `tensorflow-gpu==2.0.0-alpha0` complete.')\n",
        "elif TF_Installation == 'TF1 Nightly (GPU)':\n",
        "  !pip install -q --upgrade tf-nightly-gpu\n",
        "  print('Installation of `tf-nightly-gpu` complete.')\n",
        "elif TF_Installation == 'TF1 Stable (GPU)':\n",
        "  !pip install -q --upgrade tensorflow-gpu\n",
        "  print('Installation of `tensorflow-gpu` complete.')\n",
        "elif TF_Installation == 'System':\n",
        "  pass\n",
        "else:\n",
        "  raise ValueError('Selection Error: Please select a valid '\n",
        "                   'installation option.')"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "9clSiUTiT3G1"
      },
      "outputs": [],
      "source": [
        "#@title Install { display-mode: \"form\" }\n",
        "TFP_Installation = \"Nightly\" #@param [\"Nightly\", \"Stable\", \"System\"]\n",
        "\n",
        "if TFP_Installation == \"Nightly\":\n",
        "  !pip install -q tfp-nightly\n",
        "  print(\"Installation of `tfp-nightly` complete.\")\n",
        "elif TFP_Installation == \"Stable\":\n",
        "  !pip install -q --upgrade tensorflow-probability\n",
        "  print(\"Installation of `tensorflow-probability` complete.\")\n",
        "elif TFP_Installation == \"System\":\n",
        "  pass\n",
        "else:\n",
        "  raise ValueError(\"Selection Error: Please select a valid \"\n",
        "                   \"installation option.\")"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "kZ0MdF1j8WJf"
      },
      "outputs": [],
      "source": [
        "#@title Import { display-mode: \"form\" }\n",
        "\n",
        "from __future__ import absolute_import\n",
        "from __future__ import division\n",
        "from __future__ import print_function\n",
        "\n",
        "from pprint import pprint\n",
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "import seaborn as sns\n",
        "\n",
        "import tensorflow as tf\n",
        "from tensorflow.python import tf2\n",
        "if not tf2.enabled():\n",
        "  import tensorflow.compat.v2 as tf\n",
        "  tf.enable_v2_behavior()\n",
        "  assert tf2.enabled()\n",
        "\n",
        "import tensorflow_probability as tfp\n",
        "\n",
        "sns.reset_defaults()\n",
        "#sns.set_style('whitegrid')\n",
        "#sns.set_context('talk')\n",
        "sns.set_context(context='talk',font_scale=0.7)\n",
        "\n",
        "%matplotlib inline\n",
        "\n",
        "tfd = tfp.distributions"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "7nnwjUdVoWN2"
      },
      "source": [
        "### Make things Fast!"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "2CK9RaDcoYPG"
      },
      "source": [
        "Before we dive in, let's make sure we're using a GPU for this demo.  \n",
        "\n",
        "To do this, select \"Runtime\" -\u003e \"Change runtime type\" -\u003e \"Hardware accelerator\" -\u003e \"GPU\".\n",
        "\n",
        "The following snippet will verify that we have access to a GPU."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "qP_4Xr8vpA42"
      },
      "outputs": [],
      "source": [
        "if tf.test.gpu_device_name() != '/device:GPU:0':\n",
        "  print('WARNING: GPU device not found.')\n",
        "else:\n",
        "  print('SUCCESS: Found GPU: {}'.format(tf.test.gpu_device_name()))"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "FJRBc_S0ppfE"
      },
      "source": [
        "Note: if for some reason you cannot access a GPU, this colab will still work. (Training will just take longer.)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "xuqxMmryiduM"
      },
      "source": [
        "## Motivation"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "RtBLNF-tin2L"
      },
      "source": [
        "Wouldn't it be great if we could use TFP to specify a probabilistic model then simply minimize the negative log-likelihood, i.e.,"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "3PFfNeJzifo7"
      },
      "outputs": [],
      "source": [
        "negloglik = lambda y, rv_y: -rv_y.log_prob(y)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "cN4IP8n_jIvT"
      },
      "source": [
        "Well not only is it possible, but this colab shows how! (In context of linear regression problems.)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {},
        "colab_type": "code",
        "id": "5zCEYpzu7bDX"
      },
      "outputs": [],
      "source": [
        "#@title Synthesize dataset.\n",
        "w0 = 0.125\n",
        "b0 = 5.\n",
        "x_range = [-20, 60]\n",
        "\n",
        "def load_dataset(n=150, n_tst=150):\n",
        "  np.random.seed(43)\n",
        "  def s(x):\n",
        "    g = (x - x_range[0]) / (x_range[1] - x_range[0])\n",
        "    return 3 * (0.25 + g**2.)\n",
        "  x = (x_range[1] - x_range[0]) * np.random.rand(n) + x_range[0]\n",
        "  eps = np.random.randn(n) * s(x)\n",
        "  y = (w0 * x * (1. + np.sin(x)) + b0) + eps\n",
        "  x = x[..., np.newaxis]\n",
        "  x_tst = np.linspace(*x_range, num=n_tst).astype(np.float32)\n",
        "  x_tst = x_tst[..., np.newaxis]\n",
        "  return y, x, x_tst\n",
        "\n",
        "y, x, x_tst = load_dataset()"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "N8Shtn_e99XC"
      },
      "source": [
        "### Case 1: No Uncertainty"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {
          "height": 51
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 4265,
          "status": "ok",
          "timestamp": 1551999678120,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "RxKJ_RPI0K4N",
        "outputId": "1e3a35ae-0e21-4199-dd0e-547c18165d24"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "0.132827565074\n",
            "5.12899780273\n"
          ]
        }
      ],
      "source": [
        "# Build model.\n",
        "model = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(1),\n",
        "  tfp.layers.DistributionLambda(lambda t: tfd.Normal(loc=t, scale=1)),\n",
        "])\n",
        "\n",
        "# Do inference.\n",
        "model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01), loss=negloglik)\n",
        "model.fit(x, y, epochs=1000, verbose=False);\n",
        "\n",
        "# Profit.\n",
        "[print(np.squeeze(w.numpy())) for w in model.weights];\n",
        "yhat = model(x_tst)\n",
        "assert isinstance(yhat, tfd.Distribution)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {
          "height": 132
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 322,
          "status": "ok",
          "timestamp": 1551999678492,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "1AE9ElaKI6Er",
        "outputId": "20e4eeb5-24b6-4c68-b439-e67d60102331"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\nf2b31hmw2hmiAAAAAElFTkSuQmCC\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7fc8a578ba10\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "#@title Figure 1: No uncertainty.\n",
        "w = np.squeeze(model.layers[-2].kernel.numpy())\n",
        "b = np.squeeze(model.layers[-2].bias.numpy())\n",
        "\n",
        "plt.figure(figsize=[6, 1.5])  # inches\n",
        "#plt.figure(figsize=[8, 5])  # inches\n",
        "plt.plot(x, y, 'b.', label='observed');\n",
        "plt.plot(x_tst, yhat.mean(),'r', label='mean', linewidth=4);\n",
        "plt.ylim(-0.,17);\n",
        "plt.yticks(np.linspace(0, 15, 4)[1:]);\n",
        "plt.xticks(np.linspace(*x_range, num=9));\n",
        "\n",
        "ax=plt.gca();\n",
        "ax.xaxis.set_ticks_position('bottom')\n",
        "ax.yaxis.set_ticks_position('left')\n",
        "ax.spines['left'].set_position(('data', 0))\n",
        "ax.spines['top'].set_visible(False)\n",
        "ax.spines['right'].set_visible(False)\n",
        "#ax.spines['left'].set_smart_bounds(True)\n",
        "#ax.spines['bottom'].set_smart_bounds(True)\n",
        "plt.legend(loc='center left', fancybox=True, framealpha=0., bbox_to_anchor=(1.05, 0.5))\n",
        "\n",
        "plt.savefig('/tmp/fig1.png', bbox_inches='tight', dpi=300)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "91kwRqs4O5Yv"
      },
      "source": [
        "### Case 2: Aleatoric Uncertainty"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {
          "height": 51
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 5503,
          "status": "ok",
          "timestamp": 1551999684054,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "TLZ97_V4PP-f",
        "outputId": "754a2df4-38fa-406a-e75b-4cc285086dec"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "[ 0.1269175   1.01442909]\n",
            "[  5.20438528  16.9528389 ]\n"
          ]
        }
      ],
      "source": [
        "# Build model.\n",
        "model = tf.keras.Sequential([\n",
        "  tf.keras.layers.Dense(1 + 1),\n",
        "  tfp.layers.DistributionLambda(\n",
        "      lambda t: tfd.Normal(loc=t[..., :1],\n",
        "                           scale=1e-3 + tf.math.softplus(0.05 * t[...,1:]))),\n",
        "])\n",
        "\n",
        "# Do inference.\n",
        "model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01), loss=negloglik)\n",
        "model.fit(x, y, epochs=1000, verbose=False);\n",
        "\n",
        "# Profit.\n",
        "[print(np.squeeze(w.numpy())) for w in model.weights];\n",
        "yhat = model(x_tst)\n",
        "assert isinstance(yhat, tfd.Distribution)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {
          "height": 132
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 384,
          "status": "ok",
          "timestamp": 1551999684486,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "JSSWw2-FPCiG",
        "outputId": "9df42a6c-3591-4ec7-b132-1f96c720c396"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n/j+NUjKvhOHKsgAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7fc8a5126ed0\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "#@title Figure 2: Aleatoric Uncertainty\n",
        "plt.figure(figsize=[6, 1.5])  # inches\n",
        "plt.plot(x, y, 'b.', label='observed');\n",
        "\n",
        "m = yhat.mean()\n",
        "s = yhat.stddev()\n",
        "\n",
        "plt.plot(x_tst, m, 'r', linewidth=4, label='mean');\n",
        "plt.plot(x_tst, m + 2 * s, 'g', linewidth=2, label=r'mean + 2 stddev');\n",
        "plt.plot(x_tst, m - 2 * s, 'g', linewidth=2, label=r'mean - 2 stddev');\n",
        "\n",
        "plt.ylim(-0.,17);\n",
        "plt.yticks(np.linspace(0, 15, 4)[1:]);\n",
        "plt.xticks(np.linspace(*x_range, num=9));\n",
        "\n",
        "ax=plt.gca();\n",
        "ax.xaxis.set_ticks_position('bottom')\n",
        "ax.yaxis.set_ticks_position('left')\n",
        "ax.spines['left'].set_position(('data', 0))\n",
        "ax.spines['top'].set_visible(False)\n",
        "ax.spines['right'].set_visible(False)\n",
        "#ax.spines['left'].set_smart_bounds(True)\n",
        "#ax.spines['bottom'].set_smart_bounds(True)\n",
        "plt.legend(loc='center left', fancybox=True, framealpha=0., bbox_to_anchor=(1.05, 0.5))\n",
        "\n",
        "plt.savefig('/tmp/fig2.png', bbox_inches='tight', dpi=300)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "xEvTd7ZJYvDx"
      },
      "source": [
        "### Case 3: Epistemic Uncertainty"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "both",
        "colab": {},
        "colab_type": "code",
        "id": "VwzbWw3_CQ2z"
      },
      "outputs": [],
      "source": [
        "# Specify the surrogate posterior over `keras.layers.Dense` `kernel` and `bias`.\n",
        "def posterior_mean_field(kernel_size, bias_size=0, dtype=None):\n",
        "  n = kernel_size + bias_size\n",
        "  c = np.log(np.expm1(1.))\n",
        "  return tf.keras.Sequential([\n",
        "      tfp.layers.VariableLayer(2 * n, dtype=dtype),\n",
        "      tfp.layers.DistributionLambda(lambda t: tfd.Independent(\n",
        "          tfd.Normal(loc=t[..., :n],\n",
        "                     scale=1e-5 + tf.nn.softplus(c + t[..., n:])),\n",
        "          reinterpreted_batch_ndims=1)),\n",
        "  ])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "both",
        "colab": {},
        "colab_type": "code",
        "id": "aAQhyK9Y_lm1"
      },
      "outputs": [],
      "source": [
        "# Specify the prior over `keras.layers.Dense` `kernel` and `bias`.\n",
        "def prior_trainable(kernel_size, bias_size=0, dtype=None):\n",
        "  n = kernel_size + bias_size\n",
        "  return tf.keras.Sequential([\n",
        "      tfp.layers.VariableLayer(n, dtype=dtype),\n",
        "      tfp.layers.DistributionLambda(lambda t: tfd.Independent(\n",
        "          tfd.Normal(loc=t, scale=1),\n",
        "          reinterpreted_batch_ndims=1)),\n",
        "  ])"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {
          "height": 51
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 6447,
          "status": "ok",
          "timestamp": 1552070144671,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "XI7ZCFzSnrWN",
        "outputId": "a6fd9fa4-1275-4930-94e6-badb5d2faae3"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "[ 0.11547691  5.13491964 -3.78067064 -0.4305931 ]\n",
            "[ 0.12038151  5.10089779]\n"
          ]
        }
      ],
      "source": [
        "# Build model.\n",
        "model = tf.keras.Sequential([\n",
        "  tfp.layers.DenseVariational(1, posterior_mean_field, prior_trainable, kl_weight=1/x.shape[0]),\n",
        "  tfp.layers.DistributionLambda(lambda t: tfd.Normal(loc=t, scale=1)),\n",
        "])\n",
        "\n",
        "# Do inference.\n",
        "model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01), loss=negloglik)\n",
        "model.fit(x, y, epochs=1000, verbose=False);\n",
        "\n",
        "# Profit.\n",
        "[print(np.squeeze(w.numpy())) for w in model.weights];\n",
        "yhat = model(x_tst)\n",
        "assert isinstance(yhat, tfd.Distribution)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {
          "height": 132
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 20262,
          "status": "ok",
          "timestamp": 1552070165979,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "Y4Bypix9UvTO",
        "outputId": "d6c93465-6885-4c9a-af52-92272686a5f3"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7fc880339610\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "#@title Figure 3: Epistemic Uncertainty\n",
        "plt.figure(figsize=[6, 1.5])  # inches\n",
        "plt.clf();\n",
        "plt.plot(x, y, 'b.', label='observed');\n",
        "\n",
        "yhats = [model(x_tst) for _ in range(100)]\n",
        "avgm = np.zeros_like(x_tst[..., 0])\n",
        "for i, yhat in enumerate(yhats):\n",
        "  m = np.squeeze(yhat.mean())\n",
        "  s = np.squeeze(yhat.stddev())\n",
        "  if i \u003c 25:\n",
        "    plt.plot(x_tst, m, 'r', label='ensemble means' if i == 0 else None, linewidth=0.5)\n",
        "  avgm += m\n",
        "plt.plot(x_tst, avgm/len(yhats), 'r', label='overall mean', linewidth=4)\n",
        "\n",
        "plt.ylim(-0.,17);\n",
        "plt.yticks(np.linspace(0, 15, 4)[1:]);\n",
        "plt.xticks(np.linspace(*x_range, num=9));\n",
        "\n",
        "ax=plt.gca();\n",
        "ax.xaxis.set_ticks_position('bottom')\n",
        "ax.yaxis.set_ticks_position('left')\n",
        "ax.spines['left'].set_position(('data', 0))\n",
        "ax.spines['top'].set_visible(False)\n",
        "ax.spines['right'].set_visible(False)\n",
        "#ax.spines['left'].set_smart_bounds(True)\n",
        "#ax.spines['bottom'].set_smart_bounds(True)\n",
        "plt.legend(loc='center left', fancybox=True, framealpha=0., bbox_to_anchor=(1.05, 0.5))\n",
        "\n",
        "plt.savefig('/tmp/fig3.png', bbox_inches='tight', dpi=300)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "H_3At7s2fel0"
      },
      "source": [
        "### Case 4: Aleatoric \u0026 Epistemic Uncertainty"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {
          "height": 68
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 6589,
          "status": "ok",
          "timestamp": 1552070084016,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "GcRC3uwcft6l",
        "outputId": "63e336f8-f39d-484f-de96-860e922aa993"
      },
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "[ 0.12760594  2.6485312   5.14138079  2.94993615 -3.28214669 -0.63897073\n",
            " -0.6378141   0.03556725]\n",
            "[ 0.1130393   2.63144302  5.18561888  2.91690898]\n"
          ]
        }
      ],
      "source": [
        "# Build model.\n",
        "model = tf.keras.Sequential([\n",
        "  tfp.layers.DenseVariational(1 + 1, posterior_mean_field, prior_trainable, kl_weight=1/x.shape[0]),\n",
        "  tfp.layers.DistributionLambda(\n",
        "      lambda t: tfd.Normal(loc=t[..., :1],\n",
        "                           scale=1e-3 + tf.math.softplus(0.01 * t[...,1:]))),\n",
        "])\n",
        "\n",
        "# Do inference.\n",
        "model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01), loss=negloglik)\n",
        "model.fit(x, y, epochs=1000, verbose=False);\n",
        "\n",
        "# Profit.\n",
        "[print(np.squeeze(w.numpy())) for w in model.weights];\n",
        "yhat = model(x_tst)\n",
        "assert isinstance(yhat, tfd.Distribution)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {
          "height": 138
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 17274,
          "status": "ok",
          "timestamp": 1552070110898,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "cWhfYYzcgFak",
        "outputId": "cfc9c059-97b2-4f47-c8a0-285f58aaa1cb"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n7nOfwzAMbr/9dn784x/T19fH3XffzaJFi7jlllv4yle+wo9+9CMWLlzILbfcQldXF9C6rz//+c/z\n7W9/m76+Pv793/+dZcv2Ju2O47By5UruvfdeRFHk/PPP32ehAYDZs2fz2c9+lhtuuAHP8/jc5z6H\npmlceeWVWJbFypUreeMb3whAtVrlX//1X/nVr35FKpXiIx/5SFud4he/+AXXXHMNO3fupLu7m8su\nu4zly5cDrbkll8vxzDPP8MQTT3Dsscdyww03kMlkmJyc5MMf/jBr1qxBlmXOPvtsVq5c+aL99FIs\nVEcccQRHHHFEe/2cc85p99e+8Mgjj7BixQq2b9/OIYccwrXXXsvAwEDbarZy5UquvfZaBEHgU5/6\nFP/wD/8A0Pao1et1ent7uemmm1i6dOkL9sPFF19MOp3m6aef5umnn+b1r389V1xxBR/60Id48skn\nOfnkk/nKV77Svs5ms8m73vUuHnvsMZYtW8b1119Psbh3MM4Ljd89sb92f/vb347neSxevBhBENp9\nfckll/DQQw9x0EEHcdhhh0071t133811113H+Pg4xx57LNdeey2FQoF/+qd/4u1vfztnnXVW+xqW\nLVvGY489Rj6ff9H+24UZQvg3ippTZ3N5O8+VtjLamGDCKhNMZdvKgkTWyNCX6UaXNQRBQBFVLN9i\nqD5KTExSMTiy91CWdi4kre2ezLzQZ8PEJh4dXEMYheT0DAlFxw4cTGECudcjDhVi1yAwCyxf/Fpm\nZ3upVAM+8tWf4SsiaWmEOUGdbqFBruoi1AOseky9lkQ1EnidGp1NnUUjTfTVJfRujeTALBIDc9CX\n9VFputx335Mky2N0Dq3BiP+HoLcAukpes5FFC1+VaOQ0GopC4GtknIBus0HRc5kzMJv04oWk3rCQ\n1MIFyMlkO9N3Z32Ep7Y/zIRVoulZWM06etWm0IjIVD1yEzW0iTpyuYHg767F238A+iwWBdyMgdOR\nJujK4XdkEIpZ/EyCehDw9LMjBKGDoPhkciN87cnv40UBURiScGNSVkh/1acwZpEreYihiq/qdPYW\nSeQVpFSIl46opWQmO0QqPSKCr6C6KRS3gNxwSNY9clULabBJ3CwROVOuXVFE0jTkdAq1UERf0I3R\nP5vU/HkYs2eh5vN7lct70euNY+pug9HmRDscoJneRCo0SbkeaSegZ0xF/fkEC0yPuFqfcuuWCEwL\nJZtFKBZ4XSrLk3pAVUjSyHRyyKvm4ncmqGkRdTyYslTuInte2EDAxI98nIaHKAggtORr/ChAQEAW\nJTRZI6EY+J7Ao0+O4HohmipxwmF9kLBxQ4+kkiChGCRUg6RitO4H1UARFZzAoTaVNPO3hjiOOe+8\n8zj33HO59dZbWbNmDe9617t48MEH6ejoAOC+++7jJz/5CZZl8frXv543vvGNHHPMMXzmM5/hQx/6\nEGeddRaVSoXJyUkA7rrrLv7rv/6L22+/nWKxyKWXXsq1117LFVdcAcCjjz7K17/+da655hre//73\n86Y3vYlPfepTrFy5kgsvvJCbbrqJq666CoBt27aRSCR46qmnuOOOO3jve9/LY489hixPnzJXrFiB\naZr8+te/ptFocM4557B48WJe97p916Z+4okn+M1vfsP999/Pxz/+cU499VQeeOABfvWrX/HRj36U\nM844A0EQ+PCHP8zSpUv53e9+x/bt23nrW9/KoYceytKlS8lkMnz9619n/vz5/PKXv+T9738/xx57\nbLvd7rrrLm677TYGBgY499xz+eY3v8lFF13EzTffzPz58/nud7+L53l/1Pj0xx9/nCVLluxz2/Dw\nMB/4wAe45ZZbOOqoo7j11lv54Ac/yD333AOA53ls2bKFVatW8fDDD/O+972P5cuXE0URK1eu5L77\n7qO/v5/t27djGK0H8xfrh5/97Gfccccd5PN5TjvtNM477zy+/OUv093dzemnn859993HqaeeCsA9\n99zDt771LW6++WYuv/xyPvnJT/K1r31t2jW8lPG7C/tr99tuu42TTjqJZ599tr3vihUrsCyL1atX\ns2nTJt72trdx2mmnAa2xs3LlSr7zne8wf/58vvCFL/CJT3yCm2++mTPPPJOf/OQnbUL485//nGOO\nOeZlkUGYIYT/qxGEAWWnxnB9jI2Tm9lU3krFruMELgKgyxpJNcGsTA8n9/wd/dk+CokcOa1Vp3db\ndZBnJp6j6TXxI4+5uX5et+BVZPYggHEcM9IY54mRdZSsypR0jEvNaRATISDQne7kyJ5DeNLMsnmb\nAwggeaQHfNY/+QjrB8cZWruJUxyTSAmppUVsRcHUFIq9eTpKPpntE6THIxIDRRJz+kkcMoDe10vk\neYxtfZahnZsYXf8/lNbWacoaogCCHtMIXBLNiGTdRU3k0Xu7EfIe9s5BMpbLkJpiU5zl2WQHI4UO\n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\nvQAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7fc887c6c490\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "#@title Figure 4: Both Aleatoric \u0026 Epistemic Uncertainty\n",
        "plt.figure(figsize=[6, 1.5])  # inches\n",
        "plt.plot(x, y, 'b.', label='observed');\n",
        "\n",
        "yhats = [model(x_tst) for _ in range(100)]\n",
        "avgm = np.zeros_like(x_tst[..., 0])\n",
        "for i, yhat in enumerate(yhats):\n",
        "  m = np.squeeze(yhat.mean())\n",
        "  s = np.squeeze(yhat.stddev())\n",
        "  if i \u003c 15:\n",
        "    plt.plot(x_tst, m, 'r', label='ensemble means' if i == 0 else None, linewidth=1.)\n",
        "    plt.plot(x_tst, m + 2 * s, 'g', linewidth=0.5, label='ensemble means + 2 ensemble stdev' if i == 0 else None);\n",
        "    plt.plot(x_tst, m - 2 * s, 'g', linewidth=0.5, label='ensemble means - 2 ensemble stdev' if i == 0 else None);\n",
        "  avgm += m\n",
        "plt.plot(x_tst, avgm/len(yhats), 'r', label='overall mean', linewidth=4)\n",
        "\n",
        "plt.ylim(-0.,17);\n",
        "plt.yticks(np.linspace(0, 15, 4)[1:]);\n",
        "plt.xticks(np.linspace(*x_range, num=9));\n",
        "\n",
        "ax=plt.gca();\n",
        "ax.xaxis.set_ticks_position('bottom')\n",
        "ax.yaxis.set_ticks_position('left')\n",
        "ax.spines['left'].set_position(('data', 0))\n",
        "ax.spines['top'].set_visible(False)\n",
        "ax.spines['right'].set_visible(False)\n",
        "#ax.spines['left'].set_smart_bounds(True)\n",
        "#ax.spines['bottom'].set_smart_bounds(True)\n",
        "plt.legend(loc='center left', fancybox=True, framealpha=0., bbox_to_anchor=(1.05, 0.5))\n",
        "\n",
        "plt.savefig('/tmp/fig4.png', bbox_inches='tight', dpi=300)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "colab_type": "text",
        "id": "qmgmcmMKzOH7"
      },
      "source": [
        "### Case 5: Functional Uncertainty"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {},
        "colab_type": "code",
        "id": "qtXVxLRdzHBn"
      },
      "outputs": [],
      "source": [
        "#@title Custom PSD Kernel\n",
        "class RBFKernelFn(tf.keras.layers.Layer):\n",
        "  def __init__(self, **kwargs):\n",
        "    super(RBFKernelFn, self).__init__(**kwargs)\n",
        "    dtype = kwargs.get('dtype', None)\n",
        "\n",
        "    self._amplitude = self.add_variable(\n",
        "            initializer=tf.constant_initializer(0),\n",
        "            dtype=dtype,\n",
        "            name='amplitude')\n",
        "    \n",
        "    self._length_scale = self.add_variable(\n",
        "            initializer=tf.constant_initializer(0),\n",
        "            dtype=dtype,\n",
        "            name='length_scale')\n",
        "\n",
        "  def call(self, x):\n",
        "    # Never called -- this is just a layer so it can hold variables\n",
        "    # in a way Keras understands.\n",
        "    return x\n",
        "\n",
        "  @property\n",
        "  def kernel(self):\n",
        "    return tfp.positive_semidefinite_kernels.ExponentiatedQuadratic(\n",
        "      amplitude=tf.nn.softplus(0.1 * self._amplitude),\n",
        "      length_scale=tf.nn.softplus(5. * self._length_scale)\n",
        "    )"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "_gJJtPMzzDyo"
      },
      "outputs": [],
      "source": [
        "# Build model.\n",
        "num_inducing_points = 40\n",
        "model = tf.keras.Sequential([\n",
        "    tf.keras.layers.InputLayer(input_shape=[1], dtype=x.dtype),\n",
        "    tf.keras.layers.Dense(1, kernel_initializer='ones', use_bias=False),\n",
        "    tfp.layers.VariationalGaussianProcess(\n",
        "        num_inducing_points=num_inducing_points,\n",
        "        kernel_provider=RBFKernelFn(dtype=x.dtype),\n",
        "        event_shape=[1],\n",
        "        inducing_index_points_initializer=tf.constant_initializer(\n",
        "            np.linspace(*x_range, num=num_inducing_points,\n",
        "                        dtype=x.dtype)[..., np.newaxis]),\n",
        "        unconstrained_observation_noise_variance_initializer=(\n",
        "            tf.constant_initializer(np.array(0.54).astype(x.dtype))),\n",
        "    ),\n",
        "])\n",
        "\n",
        "# Do inference.\n",
        "batch_size = 32\n",
        "loss = lambda y, rv_y: rv_y.variational_loss(\n",
        "    y, kl_weight=np.array(batch_size, x.dtype) / x.shape[0])\n",
        "model.compile(optimizer=tf.optimizers.Adam(learning_rate=0.01), loss=loss)\n",
        "model.fit(x, y, batch_size=batch_size, epochs=1000, verbose=False)\n",
        "\n",
        "# Profit.\n",
        "yhat = model(x_tst)\n",
        "assert isinstance(yhat, tfd.Distribution)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "cellView": "form",
        "colab": {
          "height": 132
        },
        "colab_type": "code",
        "executionInfo": {
          "elapsed": 358,
          "status": "ok",
          "timestamp": 1552068861240,
          "user": {
            "displayName": "",
            "photoUrl": "",
            "userId": ""
          },
          "user_tz": 480
        },
        "id": "Fp4qEWSRzc8m",
        "outputId": "377b1344-43c6-448a-a22e-97eda75aca28"
      },
      "outputs": [
        {
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "\u003cmatplotlib.figure.Figure at 0x7fc88af6eb90\u003e"
            ]
          },
          "metadata": {
            "tags": []
          },
          "output_type": "display_data"
        }
      ],
      "source": [
        "#@title Figure 5: Functional Uncertainty\n",
        "\n",
        "y, x, _ = load_dataset()\n",
        "\n",
        "plt.figure(figsize=[6, 1.5])  # inches\n",
        "plt.plot(x, y, 'b.', label='observed');\n",
        "\n",
        "num_samples = 7\n",
        "for i in range(num_samples):\n",
        "  sample_ = yhat.sample().numpy()\n",
        "  plt.plot(x_tst,\n",
        "           sample_[..., 0].T,\n",
        "           'r',\n",
        "           linewidth=0.9,\n",
        "           label='ensemble means' if i == 0 else None);\n",
        "\n",
        "plt.ylim(-0.,17);\n",
        "plt.yticks(np.linspace(0, 15, 4)[1:]);\n",
        "plt.xticks(np.linspace(*x_range, num=9));\n",
        "\n",
        "ax=plt.gca();\n",
        "ax.xaxis.set_ticks_position('bottom')\n",
        "ax.yaxis.set_ticks_position('left')\n",
        "ax.spines['left'].set_position(('data', 0))\n",
        "ax.spines['top'].set_visible(False)\n",
        "ax.spines['right'].set_visible(False)\n",
        "#ax.spines['left'].set_smart_bounds(True)\n",
        "#ax.spines['bottom'].set_smart_bounds(True)\n",
        "plt.legend(loc='center left', fancybox=True, framealpha=0., bbox_to_anchor=(1.05, 0.5))\n",
        "\n",
        "plt.savefig('/tmp/fig5.png', bbox_inches='tight', dpi=300)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 0,
      "metadata": {
        "colab": {},
        "colab_type": "code",
        "id": "ia5m31njXLNy"
      },
      "outputs": [],
      "source": [
        ""
      ]
    }
  ],
  "metadata": {
    "colab": {
      "collapsed_sections": [],
      "last_runtime": {
        "build_target": "",
        "kind": "local"
      },
      "name": "Probabilistic_Layers_Regression.ipynb",
      "provenance": [
        {
          "file_id": "1KnuTjdi8udCLZDfe9hufjFg01FXDLYHQ",
          "timestamp": 1550986742534
        }
      ],
      "version": "0.3.2"
    },
    "kernelspec": {
      "display_name": "Python 2",
      "name": "python2"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}
